<?php
namespace app\admin\controller;

use app\common\validate\AdminUser;
use think\Controller;
use app\common\lib\IAuth;

class Login extends Base
{
    //空方法防止登录页面重定向跳转，死循环
    public function _initialize()
    {

    }

    public function index()
    {
        $login = $this->isLogin();
        if($login){
            return $this->redirect('index/index');
        }else{
            return $this->fetch();
        }

    }

    /**
     * 登录相关业务
     */
    public function check() {
        if(request()->isPost()) {
            $data = input('post.');
            if (!captcha_check($data['code'])) {
                $this->error('验证码不正确');
            }
            // 判定 username password
            // validate机制 省略

            try{
                $user = model('AdminUser')->get(['username' => $data['username']]);
            }catch (\Exception $e){
                $this->error($e->getMessage());
            }

            if (!$user || $user->status != config('code.status_normal')) {
                $this->error('该用户不存在');
            }

            // 再对密码进行校验
            if (IAuth::setPassword($data['password']) != $user['password']) {
                $this->error('密码不正确');
            }
            //1、登录之后，更新数据库的最后登录时间和ip
            $udata = [
                'last_login_time' => time(),
                //tp5助手函数获取当前用户登录ip
                'last_login_ip'   => request()->ip(),
            ];
            try{
                model('AdminUser')->save($udata, ['id' => $user->id]);
            }catch (\Exception $e){
                $this->error($e->getMessage());
            }
            //2、存用户登录信息，用于会话控制
            session(config('admin.session_user'), $user, config('admin.session_user_scope'));
            $this->success('登录成功！', 'index/index');
        }else {
            $this->error('请求不合法');
        }
    }

    public function logout(){
        session(null, config('admin.session_user_scope'));
        $this->redirect('login/index');
    }
}
